<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<title>OpenCV: ArUco marker detection (aruco module)</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon" />
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../tutorial-utils.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
   &#160;<span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../d3/d81/tutorial_contrib_root.html">Tutorials for contrib modules</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">ArUco marker detection (aruco module) </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>ArUco markers are binary square fiducial markers that can be used for camera pose estimation. Their main benefit is that their detection is robust, fast and simple.</p>
<p>The aruco module includes the detection of these types of markers and the tools to employ them for pose estimation and camera calibration.</p>
<p>Also, the ChArUco functionalities combine ArUco markers with traditional chessboards to allow an easy and versatile corner detection. The module also includes the functions to detect ChArUco corners and use them for pose estimation and camera calibration.</p>
<p>If you are going to print out the markers, an useful script/GUI tool is place at opencv_contrib/modules/aruco/misc/pattern_generator/ that can generate vector graphics of ArUco, ArUcoGrid and ChArUco boards. It can help you to print out the pattern with real size and without artifacts.</p>
<ul>
<li><p class="startli"><a class="el" href="../../d5/dae/tutorial_aruco_detection.html">Detection of ArUco Markers</a></p>
<p class="startli"><em>Compatibility:</em> &gt; OpenCV 3.0</p>
<p class="startli"><em>Author:</em> Sergio Garrido, Steve Nicholson</p>
<p class="startli">Basic detection and pose estimation from single ArUco markers.</p>
</li>
<li><p class="startli"><a class="el" href="../../db/da9/tutorial_aruco_board_detection.html">Detection of ArUco Boards</a></p>
<p class="startli"><em>Compatibility:</em> &gt; OpenCV 3.0</p>
<p class="startli"><em>Author:</em> Sergio Garrido</p>
<p class="startli">Detection and pose estimation using a Board of markers</p>
</li>
<li><p class="startli"><a class="el" href="../../df/d4a/tutorial_charuco_detection.html">Detection of ChArUco Corners</a></p>
<p class="startli"><em>Compatibility:</em> &gt; OpenCV 3.0</p>
<p class="startli"><em>Author:</em> Sergio Garrido</p>
<p class="startli">Basic detection using ChArUco corners</p>
</li>
<li><p class="startli"><a class="el" href="../../d5/d07/tutorial_charuco_diamond_detection.html">Detection of Diamond Markers</a></p>
<p class="startli"><em>Compatibility:</em> &gt; OpenCV 3.0</p>
<p class="startli"><em>Author:</em> Sergio Garrido</p>
<p class="startli">Detection and pose estimation using ChArUco markers</p>
</li>
<li><p class="startli"><a class="el" href="../../da/d13/tutorial_aruco_calibration.html">Calibration with ArUco and ChArUco</a></p>
<p class="startli"><em>Compatibility:</em> &gt; OpenCV 3.0</p>
<p class="startli"><em>Author:</em> Sergio Garrido</p>
<p class="startli">Camera Calibration using ArUco and ChArUco boards</p>
</li>
<li><p class="startli"><a class="el" href="../../d1/dcb/tutorial_aruco_faq.html">Aruco module FAQ</a></p>
<p class="startli"><em>Compatibility:</em> &gt; OpenCV 3.0</p>
<p class="startli"><em>Author:</em> Sergio Garrido</p>
<p class="startli">General and useful questions about the aruco module </p>
</li>
</ul>
</div></div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:38 for OpenCV by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
